package com.shujia.wyh.day26;

/*
    ThreadGroup:
    线程组代表一组线程。
    此外，线程组还可以包括其他线程组。
    理解：把多个线程组合到一起，可以对这一组线程进行管理
 */
public class ThreadGroupDemo {
    public static void main(String[] args) {
        //创建Runnable对象
        MyRunnable myRunnable = new MyRunnable();

        //借助Thread类创建线程对象
//        Thread t1 = new Thread(myRunnable, "李毅");
//        Thread t2 = new Thread(myRunnable, "许文客");
//
//        //想办法获取线程所在线程组
//        //ThreadGroup getThreadGroup()
//        //返回此线程所属的线程组。
//        ThreadGroup group1 = t1.getThreadGroup();
//        ThreadGroup group2 = t2.getThreadGroup();
//
//        //默认情况下，如果不对线程进行分组，会有一个默认的组
//        //String getName() 返回此线程组的名称。
//        //线程默认所属线程组叫做main,也就是都属于主线程组中的
//        String g1 = group1.getName();
//        String g2 = group2.getName();
//        System.out.println(g1);
//        System.out.println(g2);

        //创建一个组
        //ThreadGroup(String name)
        //构造一个新的线程组。 创建线程组的同时给线程组起名字
        ThreadGroup group = new ThreadGroup("帅哥组");


        //没有办法做到分完组后，再进行修改组
        //Thread(ThreadGroup group, Runnable target, String name)
        //创建线程对象，并分配组
        Thread t1 = new Thread(group, myRunnable, "李毅");
        Thread t2 = new Thread(group, myRunnable, "许文客");

        //打印线程所属组的名字
        String s1 = t1.getThreadGroup().getName();
        String s2 = t2.getThreadGroup().getName();
        System.out.println(s1);
        System.out.println(s2);

        ThreadGroup group2 = new ThreadGroup("美女组");
        //创建线程并且进行分组
        Thread t3 = new Thread(group2, myRunnable, "姚欣");
        Thread t4 = new Thread(group2, myRunnable, "张傲");

        //打印线程所属组的名字
        String s3 = t3.getThreadGroup().getName();
        String s4 = t4.getThreadGroup().getName();
        System.out.println(s3);
        System.out.println(s4);

        //需求：将帅哥组设置成守护线程
        //直接通过线程组名来进行设置
        group.setDaemon(true);

//        t1.setDaemon(true);
//        t2.setDaemon(true);

        //启动线程
        t3.start();
        t4.start();
        t1.start();
        t2.start();



    }
}
